package com.gbas.mus.model;

import com.gbas.model.Mazo;
import com.gbas.mus.JugarMus;

import java.util.ArrayList;
import java.util.List;

public class Partida {
    int stado;  // 0 en juego, 1 ganador equipo 1, 2 ganador equipo2
    List<Vaca> vacas = new ArrayList<Vaca>();

    ModoMus modoMus;
    public Mazo mazoCartas;
    JugarMus jugarMus;

    public Vaca vacaActual;
    Jugadores jugadores;

    public Partida(JugarMus jugarMus, Jugadores jugadores, ModoMus modoMus) {
        this.jugarMus = jugarMus;
        this.jugadores = jugadores;
        this.modoMus = modoMus;
    }


    public void jugar() {
        stado = 0;
        nuevaVaca();

        //jugarMus.accionMesa(Accion.MENSAJE_TEXTO, "Comienza la partida, "+jugadores.getJugador(vacaActual.juegoActual.rondaActual.jugadorMano).nombre+ " es mano.");


    }

    private void nuevaVaca() {
        vacaActual = new Vaca(this);
        vacas.add(vacaActual);
        jugarMus.accionMesa(Accion.MENSAJE_TEXTO, "Nueva vaca");
    }


    public int getStado() {
        return stado;
    }

    public void vacaFinalizada() {
        int ganados1 = 0, ganados2 = 0;
        for (Vaca v : vacas) {
            if (v.stado == 1) {
                ganados1++;
            }
            if (v.stado == 2) {
                ganados2++;
            }
        }
        final int vacasToWin = 1 + modoMus.getNumeroDeVacas() / 2;

        jugarMus.accionMesa(Accion.MENSAJE_TEXTO, "La vaca ha finalizado el equipo 1 lleva " + ganados1 + ", el equipo 2 lleva " + ganados2);

        if (ganados1 == vacasToWin) {
            finPartida(1);
        } else if (ganados2 == vacasToWin) {
            finPartida(2);
        } else {
            nuevaVaca();
        }


    }

    private void finPartida(int ganados2) {
        stado = ganados2;
        jugarMus.accionMesa(Accion.MENSAJE_TEXTO, "La partida ha finalizado el equipo " + ganados2 + " ha resultado vencedor, Enhorabuena!!!");
    }
}
